﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Runtime.Serialization;

//written by Dylan Snel
namespace VisionApplication
{
    public abstract class VisionAlgorithm
    {
        private String _Name;
        public Settings _settings;
        public string[] required;
        public Bitmap Image;

        public Settings settings
        {
            get
            {
                return _settings;
            }
            set
            {
                _settings = settings;
            }
        }

        public String Name {
            get
            {
                return _Name;
            }
            set
            {
                _Name = Name;
            }
        }

        public VisionAlgorithm(String name, string[] required) {
            this.required = required;
            this._settings = new Settings(required);
        
            this._Name = name;
        }
        
        public abstract Bitmap DoAlgorithm(Bitmap sourceImage, Object obj);
        public VisionAlgorithm Clone()
        {
            return (VisionAlgorithm)this.MemberwiseClone();
        }
    }

}
